package com.ruoyi.common.utils;

import org.apache.commons.lang3.RandomStringUtils;

import java.security.SecureRandom;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;

/**
 * 生成6位验证码（非0开头）
 */
public class CodeUtils {


    public static String generateCodeThread() {
        int first = ThreadLocalRandom.current().nextInt(1, 10); // 1-9
        int rest  = ThreadLocalRandom.current().nextInt(0, 1_000_000); // 0-999999
        // 用 0 补足 5 位
        return first + String.format("%05d", rest);
    }

    public static String generateCodeRandom() {
        Random r = new Random();
        int first = 1 + r.nextInt(9);       // 1-9
        int rest  = r.nextInt(100_000);     // 0-99999
        return first + String.format("%05d", rest);
    }

    public static String generateCodeCommon() {
        return RandomStringUtils.random(1, "123456789") +   // 第一位
            RandomStringUtils.randomNumeric(5);          // 后五位
    }

    private static final SecureRandom SECURE = new SecureRandom();

    public static String generateCode() {
        int first = 1 + SECURE.nextInt(9);
        int rest  = SECURE.nextInt(100_000);
        return first + String.format("%05d", rest);
    }
}
